我想实现慕课网的效果(课外),我觉得只要稍加修改不报错实现就好,很好奇,还是想老师纠错
1.二维码效果完全没有
2.字与图片切换只有最后一个按钮有效
3.无法实现切换的字都不一样,如果问题二解决了,只能全部换成字“买”
4.如果想第三个按钮点击时二维码与第三个按钮平行,第四个按钮点击时二维码与第四个按钮平行,怎么写代码
5.写代码for循环有多个时,变量是否能全部写成i?(我这里写的都不一样)
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> *{margin: 0;padding: 0;} body{background-color: blue;} .box{position: fixed;padding: 5px 10px;top: calc(50% - 69px);right: 0;background-color: white;} .anniu{margin: 10px auto;background-image: url("anniu.jpg");width: 20px;height: 20px;cursor: pointer; text-align: center;line-height: 20px;font-size: 14px;} .erweima{position: absolute;bottom: 0;right: 40px;background-image: url("erweima.jpg");width: 160px;height: 200px;} </style> <style> .erweima{transform-origin: 100% 100%;transition: all 1s;} .erweima_animate_init{opacity: 0;transform: scale(0);} .erweima_animate_done{opacity: 1;transform: scale(1);} </style> </head> <body> <div class="box"> <div class="anniu zi1"></div> <div class="anniu zi2"></div> <div class="anniu zi3"></div> <div class="anniu zi4"></div> <div class="erweima erweima_animate_init"></div> </div> <script> var shuzu=[".zi1",".zi2",".zi3",".zi4"]; for(var i=2;i<shuzu.length;i++){ var target=document.querySelector(shuzu[i]); target.onmouseover=function(){ var erweima=document.querySelector("erweima"); var classanniu=erweima.getAttribute("class"); classanniu.setAttribute("class",classanniu.replace('_animate_init','_animate_done')); } } for(var j=2;j<shuzu.length;j++){ var mubiao=document.querySelector(shuzu[j]); target.onmouseout=function(){ var erweima=document.querySelector("erweima"); var classanniu=erweima.getAttribute("class"); classanniu.setAttribute("class",classanniu.replace('_animate_done','_animate_init')); } } for(var d=0;d<shuzu.length;d++){ var zi=document.querySelector(shuzu[d]); zi.onmouseover=function(){ zi.style.backgroundImage="none"; zi.innerHTML="买"; } } for(var d=0;d<shuzu.length;d++){ var zi=document.querySelector(shuzu[d]); zi.onmouseout=function(){ zi.style.backgroundImage="url('anniu.jpg')"; zi.innerHTML=""; } } </script> </body> </html>
27
收起
正在回答
2回答
同学你好,课外知识需要自己去拓展延伸,根据课程学习过的知识去实现,这样才能提升技能。另外这些问题都涉及到作用域的问题,给你举了一个修改示例:
for (var i = 2; i < shuzu.length; i++) { (function(i) { var target = document.querySelector(shuzu[i]); target.onmouseover = function() { var erweima = document.querySelector(".erweima"); var classanniu = erweima.getAttribute("class"); erweima.setAttribute("class", classanniu.replace('_animate_init', '_animate_done')); } target.onmouseout = function() { var erweima = document.querySelector(".erweima"); var classanniu = erweima.getAttribute("class"); erweima.setAttribute("class", classanniu.replace('_animate_done', '_animate_init')); } })(i) }
这边测试是可以实现二维码显示隐藏效果的,因为没有图片,使用文字代替了:
同学静下心来一点一点的去修改完善,相信自己可以实现的,如果还是存在问题,建议复习一下作用域课程以及后面的练习,对理解也有一定的帮助:
https://class.imooc.com/lesson/788#mid=19788
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星