イメージタグ img にも、同様の役割を果たす alt 属性があります。しかし、この種のプロンプト ボックスは単調すぎるため、誰かが JavaScript を使用して、Web ゲームでよく使用されています。下の図ではこの効果を使用しています。それぞれの実装効果には多少の違いがありますが、全体的な実装の考え方は変わりません。誰もが実装の詳細を理解し、必要な効果をカスタマイズしやすくするために、オンラインで優れたソース コードを見つけて、それについて詳細なコメントを作成しました。
/***********************************************
一个JavaScript Title、alt提示(Tips)源码解读
代码注释:唐国辉
作者博客:http://webflash.cnblogs.com
***********************************************/
//定义getElementById快捷方式
function $(obj)
{
if(typeof(obj)=='object')
{
return obj;
}
else
{
return document.getElementById(obj);
}
}
//定义document.write快捷方式,代替复杂的DOM操作
function $P(str)
{
document.write(str);
}
//脚本错误屏蔽
window.onerror=function ()
{
return true;
};
/*
定义变量:
pltsPop(提示内容文字,来自对象的alt或title属性,不包含HTML)
toolTip(提示内容DOM对象,即后面定义的content变量)
pltsPoptop(上方提示标题DOM对象)
pltsPopbot(下方提示标题DOM对象)
topLeft(左上角提示标题DOM对象)
botLeft(左下方提示标题DOM对象)
topRight(右上角提示标题DOM对象)
botRight(右下方提示标题DOM对象)
*/
var pltsPop,toolTip,pltsPoptop,pltsPopbot,topLeft,botLeft,topRight,botRight;
//设置提示窗口相对提示对象的位置偏移量
var pltsoffsetX=10;
var pltsoffsetY=15;
var pltsTitle="";
//创建一个绝对定位的隐藏图层
$P('
');
//把刚创建的层对象赋值给一个变量,此语句一定要出现在层创建之后
var pltsTipLayer=$('pltsTipLayer');
//定义鼠标移到对象上时处理函数,主要提取alt或title属性值,并初始化提示框HTML及样式
function PltsMouseOver(ev)
{
//兼容不同浏览器的事件和对象获取
var Event=window.event||ev;
var o=Event.srcElement||Event.target;
//如果对象alt属性存在并且不等于空,就把它的值存到dypop属性,并清空当前alt内容
if(o.alt!=null&&o.alt!="")
{
o.dypop=o.alt;
o.alt="";
}
//如上,对具有title属性的对象作同样的判断和处理,清空title属性值是让对象默认的提示效果失效
if(o.title!=null&&o.title!="")
{
o.dypop=o.title;
o.title="";
}
pltsPop=o.dypop;
if(pltsPop!=null&&pltsPop!=""&&typeof(pltsPop)!="undefined")
{
//把上面创建的提示层显示出来,暂时移到左边很远,虽然显示但用户看不到
pltsTipLayer.style.left=-1000;
pltsTipLayer.style.display='';
/*
格式化提示信息,把其中的\n换成
,比如像下面这样定义title值,显示出来会是作者和性别各一行,因为Tom和Sex之间有
:
Article title...
*/
var Msg=pltsPop.replace(/n/g,"
");
//包括的な処理によって取得されたプロンプト ボックスの最終位置の値をオブジェクトに設定します。scrollTop はスクロールされる Web ページの高さです。style.top はブラウザ ウィンドウではなくドキュメント全体を基準としているため、スクロールと非表示を含める必要があります。 🎜 >return true;
}
// イベント バインディング関数を定義します
function PltsInit()
{
document.onmousemove=PltsMouseMove; }
//イベント バインディング関数を呼び出します
PltsInit();
呼び出しメソッド: 上記のコードを外部の独立した JS ファイルに保存し、Web ページに含めます。この JS ファイルでは、最後にプロンプトが必要なオブジェクトに title 属性を追加し、画像に alt 属性を追加できます。例:
省略されたタイトル または
関連リンク: