Skip to content

Commit 2c05502

Browse files
committed
增加过渡样式 分离
1 parent 188bb6d commit 2c05502

File tree

1 file changed

+71
-58
lines changed

1 file changed

+71
-58
lines changed

放大镜(over)/index.html

+71-58
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@
1515
width: 300px;
1616
height: 500px;
1717
float: left;
18-
1918
}
20-
2119
#main > .mark{
2220
position: absolute;
2321
width: 50px;
@@ -26,16 +24,20 @@
2624
top: 0px;
2725
z-index: 10000;
2826
background-color: red;
29-
filter: alpha(opacity=0.5);
30-
opacity: 0.5;
27+
filter: alpha(opacity=.5);
28+
opacity: .5;
3129
}
3230
div[class=bigshow]{
3331
float: left;
34-
display: none;
32+
filter: alpha(opacity=0);
33+
opacity: 0;
34+
position: relative;
35+
z-index: -100;
3536
background: url('big.jpg') no-repeat;
3637
width: 500px;
3738
height: 500px;
3839
background-position: 0% 0%;
40+
transition:opacity .6s ease-in;
3941
}
4042

4143

@@ -53,66 +55,77 @@
5355
<script>
5456

5557
(function(){
56-
var kuai = document.getElementById('main'),
57-
mark = document.getElementsByClassName('mark')[0],
58-
bigshow = document.getElementsByClassName('bigshow')[0];
59-
function getPositionLeft(ele){
60-
var actLeft = ele.offsetLeft;
61-
var currentLeft = ele.offsetParent;
62-
while(currentLeft!==null){
63-
actLeft+=currentLeft.offsetLeft;
64-
currentLeft = currentLeft.offsetParent;
65-
}
66-
return actLeft;
67-
}
68-
function getPositionTop(ele){
69-
var actTop = ele.offsetTop;
70-
var currentTop = ele.offsetParent;
71-
while(currentTop!==null){
72-
actTop +=currentTop.offsetTop;
73-
currentTop = currentTop.offsetParent;
74-
}
75-
return actTop;
76-
}
77-
kuai.addEventListener('mousemove',function(event){
78-
bigshow.style.display='block';
79-
var pl = getPositionLeft(kuai);
80-
var pt = getPositionTop(kuai);
81-
var MaxPointX = 300-25;
82-
var MaxPointY = 500-25;
8358

84-
var pointX = event.clientX-pl;
85-
var pointY = event.clientY-pt;
86-
// console.log(pointX,MaxPointX,pointY,MaxPointY);
87-
if(pointX<25){
88-
var blockX = 0;
89-
}else if(pointX>MaxPointX){
90-
var blockX = MaxPointX-25;
91-
}else{
92-
var blockX = pointX-25;
93-
}
94-
if(pointY<25){
95-
var blockY = 0;
96-
}else if(pointY>MaxPointY){
97-
console.log('big more');
98-
var blockY = MaxPointY-25;
99-
}else{
100-
var blockY = pointY-25;
59+
function photoshow(option){
60+
var kuai = option&&option._root||'main',
61+
mark = option&&option._mark||'mark',
62+
bigshow = option&&option._bigshow||'bigshow'
63+
kuai = document.getElementById(kuai),
64+
mark = document.getElementsByClassName(mark)[0],
65+
bigshow = document.getElementsByClassName(bigshow)[0];
66+
67+
function getPositionLeft(ele){
68+
var actLeft = ele.offsetLeft;
69+
var currentLeft = ele.offsetParent;
70+
while(currentLeft!==null){
71+
actLeft+=currentLeft.offsetLeft;
72+
currentLeft = currentLeft.offsetParent;
73+
}
74+
return actLeft;
75+
}
76+
function getPositionTop(ele){
77+
var actTop = ele.offsetTop;
78+
var currentTop = ele.offsetParent;
79+
while(currentTop!==null){
80+
actTop +=currentTop.offsetTop;
81+
currentTop = currentTop.offsetParent;
82+
}
83+
return actTop;
10184
}
102-
var kw = kuai.offsetWidth;
103-
var kh = kuai.offsetHeight;
85+
kuai.addEventListener('mousemove',function(event){
86+
bigshow.style.opacity='1';
87+
var pl,pt,MaxPointX,MaxPointY,pointX,pointY,blockX,blockY,km,kh
88+
pl = getPositionLeft(kuai);
89+
pt = getPositionTop(kuai);
90+
MaxPointX = 300-25;
91+
MaxPointY = 500-25;
10492

93+
pointX = event.clientX-pl;
94+
pointY = event.clientY-pt;
95+
// console.log(pointX,MaxPointX,pointY,MaxPointY);
96+
if(pointX<25){
97+
blockX = 0;
98+
}else if(pointX>MaxPointX){
99+
blockX = MaxPointX-25;
100+
}else{
101+
blockX = pointX-25;
102+
}
103+
if(pointY<25){
104+
blockY = 0;
105+
}else if(pointY>MaxPointY){
106+
blockY = MaxPointY-25;
107+
}else{
108+
blockY = pointY-25;
109+
}
110+
kw = kuai.offsetWidth;
111+
kh = kuai.offsetHeight;
105112

106113

107-
bigshow.style.backgroundPosition = (pointX/kw).toFixed(2)*100+'% '+(pointY/kh).toFixed(2)*100+'%';
108114

109-
mark.style.left=blockX+'px';
110-
mark.style.top=blockY+'px';
111-
});
112-
kuai.addEventListener('mouseout',function(){
113-
bigshow.style.display='none';
114-
})
115+
bigshow.style.backgroundPosition = (pointX/kw).toFixed(2)*100+'% '+(pointY/kh).toFixed(2)*100+'%';
115116

117+
mark.style.left=blockX+'px';
118+
mark.style.top=blockY+'px';
119+
});
120+
kuai.addEventListener('mouseout',function(){
121+
bigshow.style.opacity='0';
122+
})
123+
}
124+
photoshow({
125+
_root:'main', //小图id
126+
_mark:'mark', //进入小图后遮罩层类名
127+
_bigshow:'bigshow' // 大图类名
128+
});
116129
})();
117130

118131
</script>

0 commit comments

Comments
 (0)