jQuery技术

jQuery实现拼图小游戏

字号+ 作者:H5之家 来源:H5之家 2017-08-01 13:08 我要评论( )

jQuery实现拼图小游戏

小熊维尼拼图                                                                                    2017-07-23       21:59:48

jQuery代码实现拼图小游戏,鼠标选中拼块,用上下左右键移动拼块。

 

效果展示

html代码

1 <div>

2 <!--走不通时的提示!-->

3 <div>

4 <p>\(╯-╰)/ 哎呦,走不通啦!</p>

5 </div>

6 <div>

7 <div>

8 <div><img src="http://www.h5cn.com/upload8/allimg/170801/13111392G_1.png" alt="photo1"/></div>

9 <div><img src="http://www.h5cn.com/upload8/allimg/170801/130935I42_1.gif" alt="photo2"/></div>

10 <div><img src="http://www.h5cn.com/upload8/allimg/170801/13100X2M_0.gif" alt="photo3"/></div>

11 </div>

12 <div>

13 <div><img src="http://www.h5cn.com/upload8/allimg/170801/13100X2M_1.gif" alt="photo4"/></div>

14 <div><img src="http://www.h5cn.com/upload8/allimg/170801/130Z52D0_1.gif" alt="photo5"/></div>

15 <div><img src="http://www.h5cn.com/upload8/allimg/170801/130935I42_0.gif" alt="photo6"/></div>

16 </div>

17 <div>

18 <div><img src="http://www.h5cn.com/upload8/allimg/170801/130Z52D0_0.gif" alt="photo7"/></div>

19 <div><img src="http://www.h5cn.com/upload8/allimg/170801/130TQW8_0.gif" alt="photo8"/></div>

20 <div><img src="http://www.h5cn.com/upload8/allimg/170801/130TQW8_1.gif" alt="photo9"/></div>

21 </div>

22 </div>

23 </div

1 #box-div {

2 position: relative;

3 width: 508px;

4 height: 631px;

5 margin: 0 auto;

6 }

7

8 #container {

9 width: 508px;

10 height: 631px;

11 margin: 0 auto;

12 -webkit-box-sizing: border-box;

13 -moz-box-sizing: border-box;

14 box-sizing: border-box;

15 border: 1px solid #d5e0e6;

16 }

17

18 #container > .row {

19 display: -webkit-box;

20 white-space: nowrap;

21 }

22

23 #container > .row > .unit {

24 width: 169px;

25 height: 209px;

26 display: inline-block\9;/*兼容IE9/10*/

27 vertical-align: top\9;/*兼容IE9/10*/

28 box-sizing: border-box;

29 border: 1px solid rgba(7, 157, 239, 0);

30 }

31

32 #container > .row > .unit.move {

33 border: 1px solid rgba(7, 157, 239, 1);

34 }

35

36 #tips {

37 width: 200px;

38 height: 50px;

39 background: rgb(152, 206, 50);

40 position: absolute;

41 z-index: 5;

42 top: -50px;

43 left: calc(50% - 100px);

44 opacity: 0;

45 }

46

47 #tips > p {

48 margin: 0;

49 line-height: 50px;

50 text-align: center;

51 color: white;

52 }

53 .directions{

54 width:50%;

55 margin:0 auto;

56 text-align: center;

57 line-height: 30px;

58 color: white;

59 background-color: #a7cbf0;

60 }

 

jquery代码

1 $("#container>.row>.unit>img").each(function () {

2 $(this).click(function (event) {

3 event.stopPropagation();

4 $(".unit").removeClass("move");

5 $(this).parent(".unit").addClass("move");

6 })

7 });

8 move(".move","#tips");

9 function move(className,idName) {

10 /* 提示信息 */

11 function tipsAlert(idName) {

12 $(idName).animate({top: "0", opacity: "1"}, 500);

13 setTimeout(function () {

14 $(idName).animate({top: "-50px", opacity: "0"}, 800);

15 }, 1000)

16 }

17 /* 上下左右按键移动 */

18 $(document).keydown(function (e) {

19 var code = e.keyCode;

20 if (code > 40 || code < 37) {

21 return false;

22 }

23 var prev = $(className)[0].previousElementSibling;//选中元素前置位元素是否存在,以此判断元素是否还可以左右移动

24 var next = $(className)[0].nextElementSibling;//选中元素后置位元素是否存在,以此判断元素是否还可以左右移动

25 var paprev = $(className).parent()[0].previousElementSibling;//选中元素父级前置位元素是否存在,以此判断元素是否还可以上下移动

26 var panext = $(className).parent()[0].nextElementSibling;//选中元素父级后置位元素是否存在,以此判断元素是否还可以上下移动

27 var index = $(className).index();//根据选中元素的索引值,来确定上下移动时对换的位置

28 var movenDiv = $(className).next()[0];//以此确定上下对换元素添加方式

29 var movepDiv = $(className).prev()[0];//以此确定上下对换元素添加方式

30 switch (code) {

31 case 37://左

32 if (prev) {

33 $(className).insertBefore(prev);

34 } else {

35 tipsAlert(idName);

36 }

37 break;

38 case 38://上

39 if (paprev) {

40 var exchangeTop = $(paprev).children()[index];

41 $(className).insertBefore(exchangeTop);

42 if (movenDiv) {

43 $(exchangeTop).insertBefore(movenDiv);

44 } else {

45 $(exchangeTop).insertAfter(movepDiv)

46 }

47

48 } else {

49 tipsAlert(idName);

50 }

51 break;

52 case 39://右

53 if (next) {

54 $(className).insertAfter(next);

55 } else {

56 tipsAlert(idName)

57 }

58 break;

59 case 40://下

60 if (panext) {

61 var exchangeBottom = $(panext).children()[index];

62 $(className).insertBefore(exchangeBottom);

63 if (movenDiv) {

64 $(exchangeBottom).insertBefore(movenDiv);

65 } else {

66 $(exchangeBottom).insertAfter(movepDiv)

67 }

68 } else {

69 tipsAlert(idName);

70 }

71 break;

72

73 }

74 });

75

76

77 }


菜鸟一只,仅供参考,欢迎留言更好的代码建议,谢谢啦!

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 如何上好复习课

    如何上好复习课

    2017-08-01 15:01

  • jQuery学习路线。

    jQuery学习路线。

    2017-08-01 12:02

  • jquery学习(一)

    jquery学习(一)

    2017-07-31 14:04

  • jquery动态增加表格,删除表格

    jquery动态增加表格,删除表格

    2017-07-31 13:00

网友点评
s