私は2つの異なる例を持っています.1つはマウスオーバー機能を持ち、もう1つはクリックイベント機能を持っていますが、今は両方を一緒にしたいのですが、以下に説明があります:
マウスオーバーのリンク例: http://wheaton.advisorproducts.com/investment-advisory
マウスクリック例: http: //ivyfa.advisorproducts.com/financial-planning-process
要件はこのようなものです
この例(http://ivyfa.advisorproducts.com/financial-planning-process)では、現在マウスオーバー機能が機能していますが、以下の機能が必要です:
- ユーザーが画像の上にマウスを移動すると、中央に関連テキストが表示され、じょうごと円の下の例の両方で表示されます。
- ユーザーが画像セクションのいずれかをクリックすると、ユーザーが別の画像または部分をクリックするまで、関連するテキストが毎回表示されます。
- このクリック イベントとともに、ユーザーが diif-2 画像セクションにマウス ポインターを合わせると、関連するテキストも表示されます。ユーザーがマウスを円の外に移動すると、選択したテキストが表示されます。
最後に、両方の例をマージしたい
この例を説明するのは非常に複雑です。申し訳ありません:(
以下は、マウスオーバー機能に使用される js コードです。
/*-----Only for hove over image -show hide text------*/
var IdAry=['slide1','slide2','slide3','slide4'];
window.onload=function() {
for (var zxc0=0;zxc0<IdAry.length;zxc0++){
var el=document.getElementById(IdAry[zxc0]);
if (el){
el.onmouseover=function() {
changeText(this,'hide','show')
}
el.onmouseout=function() {
changeText(this,'show','hide');
}
}
}
}
function changeText(obj,cl1,cl2) {
obj.getElementsByTagName('SPAN')[0].className=cl1;
obj.getElementsByTagName('SPAN')[1].className=cl2;
}
以下は、クリック イベント機能に使用される js コードです。
/*----------Text change on click - Our Process page---------------*/
var prev;
var IdAry = ['slide1', 'slide2', 'slide3', 'slide4'];
window.onload = function () {
for (var zxc0 = 0; zxc0 < IdAry.length; zxc0++) {
var el = document.getElementById(IdAry[zxc0]);
if (el) {
setUpHandler(el);
el.onmouseover = function () {
changeText(this,'hide','show')
}
el.onmouseout = function () {
changeText(this,'show','hide');
}
}
}
}
/*---------This is used to add selected class on clicked id only and remove class selected from rest---------*/
function setUpHandler(el) {
$("#" + IdAry.join(",#")).click(function () {
$(this).addClass("selected");
$("#graphics .selected").not(this).removeClass("selected");
})
/*---------This will add show hide class to thier spans and vise versa-------*/
$("#" + IdAry.join(",#")).click(
function () {
changeText(this, "hide", "show");
clearSelection();
},
function () {
changeText(this, "show", "hide");
clearSelection();
})
}
function changeText(obj, cl1, cl2) {
obj.getElementsByTagName('SPAN')[0].className = "hide";
obj.getElementsByTagName('SPAN')[1].className = "show";
if (prev && obj !== prev) {
prev.getElementsByTagName('SPAN')[0].className = "show";
prev.getElementsByTagName('SPAN')[1].className = "hide";
}
prev = obj
}
function clearSelection() {
if (window.getSelection) window.getSelection().removeAllRanges();
else if (document.selection) document.selection.empty();
}
ありがとうスシル