我想实现慕课网的效果(课外),我觉得只要稍加修改不报错实现就好,很好奇,还是想老师纠错

我想实现慕课网的效果(课外),我觉得只要稍加修改不报错实现就好,很好奇,还是想老师纠错

1.二维码效果完全没有

2.字与图片切换只有最后一个按钮有效

3.无法实现切换的字都不一样,如果问题二解决了,只能全部换成字“买”

4.如果想第三个按钮点击时二维码与第三个按钮平行,第四个按钮点击时二维码与第四个按钮平行,怎么写代码

5.写代码for循环有多个时,变量是否能全部写成i?(我这里写的都不一样)

http://img1.sycdn.imooc.com//climg/5e08171909594e1c02630324.jpg

<!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>


正在回答

登陆购买课程后可参与讨论,去登陆

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)

        }

这边测试是可以实现二维码显示隐藏效果的,因为没有图片,使用文字代替了:

http://img1.sycdn.imooc.com//climg/5e086eb809e3ec0502390234.jpg

同学静下心来一点一点的去修改完善,相信自己可以实现的,如果还是存在问题,建议复习一下作用域课程以及后面的练习,对理解也有一定的帮助:

https://class.imooc.com/lesson/788#mid=19788

祝学习愉快!

  • 迷失的小麦 提问者 #1
    老师,我调试出来改变字的效果了,但是根据老师提供的代码,还是无法出来效果,不知道什么原因,打开控制台类名就没有发生变化
    2019-12-30 10:03:43
  • 好帮手慕星星 回复 提问者 迷失的小麦 #2
    你好,老师在私信中给你解决,可以看一下。
    2019-12-30 10:45:22
  • 迷失的小麦 提问者 #3
    已回复,谢谢老师!
    2019-12-30 13:30:25
好帮手慕星星 2019-12-29 15:31:02

同学你好,主要是i值作用域的问题,for循环会先执行完毕,那么方法中拿到的i值就是循环执行完毕后的i,而不是相对应的i值。因为是课外知识,老师给你修改一个移入显示二维码,移出隐藏二维码的效果。参考:

http://img1.sycdn.imooc.com//climg/5e0855d209f1d08a11900546.jpg

自己再试着修改其他的效果,不要着急,要细心,理解之后,慢慢提升技能才是重要的。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 迷失的小麦 #1
    老是要在哪个阶段才能回答我的问题?还是说老师不会回答呢?如果可以的话,别的问题麻烦解答下,而且我的二维码效果也没出来
    2019-12-29 15:41:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师