经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
基于vue实现一个神奇的动态按钮效果
来源:jb51  时间:2019/5/15 9:57:09  对本文有异议

今天我们将利用vue的条件指令来完成一个简易的动态变色功能按钮

首先我们还是要对vue进行配置,在上篇随笔中有相关下载教学.

然后我们要在html页面上搭建三个简易的按钮,颜色分别为紫,绿和蓝(颜色随意)其代码如下:

  1. <body>
  2. <div id="app">
  3. <p>
  4. <button @click="btn_click('pg1')" :style="{background:'rebeccapurple'}"></button>
  5. <button @click="btn_click('pg2')" :style="{background:'yellowgreen'}">绿</button>
  6. <button @click="btn_click('pg3')" :style="{background:'cornflowerblue'}"></button>
  7. </p>
  8. </div>
  9. </body>

这里的@是v-on事件指令,在这里要在三个按钮上设置点击事件

接着我们要进行条件指令的判断,其代码如下:  

  1. <div class="box pg1" v-if="pg == 'pg1'" key="pg1"></div>
  2. <div class="box pg2" v-else-if="pg == 'pg2'" key="pg2"></div>
  3. <div class="box pg3" v-else key="pg3"></div>

通过条件来判断点击不同的按钮触发不同的效果

接下来我们将进行挂载点,事件的渲染以及为事件提供实现体操作

  1. <script>
  2. new Vue({
  3. el: '#app',
  4. data: {
  5. pg: 'pg1'
  6. },
  7. methods: {
  8. btn_click: function (pg_num) {
  9. this.pg = pg_num
  10. }
  11. }
  12. })
  13. </script>

这里我们设置进入页面后默认显示第一个按钮显示的图片,通过点击来完成事件的转换.

最后就是把图片给设置出来啦

  1. <style>
  2. .box {
  3. width: 200px;
  4. height: 100px;
  5. background-color: darkgray;
  6. }
  7. .pg1 { background-color: rebeccapurple; }
  8. .pg2 { background-color: yellowgreen; }
  9. .pg3 { background-color: cornflowerblue; }
  10. </style>

  当然也可以选择你喜欢的图片进行放置,这里我们只是放置颜色填充的框

具体的实现效果如下:

 

  通过不同的点击来获得不同的图片!

整体代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .box {
  8. width: 200px;
  9. height: 100px;
  10. background-color: darkgray;
  11. }
  12. .pg1 { background-color: rebeccapurple; }
  13. .pg2 { background-color: yellowgreen; }
  14. .pg3 { background-color: cornflowerblue; }
  15. </style>
  16. </head>
  17. <body>
  18. <div id="app">
  19. <p v-if="is_if" key="my_if">v-if的显示与隐藏</p>
  20. <p v-show="is_show" key="my_show">v-show的显示与隐藏</p>
  21. <p>
  22. <button @click="btn_click('pg1')" :style="{background:'rebeccapurple'}"></button>
  23. <button @click="btn_click('pg2')" :style="{background:'yellowgreen'}">绿</button>
  24. <button @click="btn_click('pg3')" :style="{background:'cornflowerblue'}"></button>
  25. <div class="box pg1" v-if="pg == 'pg1'" key="pg1"></div>
  26. <div class="box pg2" v-else-if="pg == 'pg2'" key="pg2"></div>
  27. <div class="box pg3" v-else key="pg3"></div>
  28. </p>
  29. </div>
  30. </body>
  31. <script src="js/vue.min.js"></script>
  32. <script>
  33. new Vue({
  34. el: '#app',
  35. data: {
  36. is_if: false,
  37. is_show: true,
  38. pg: 'pg1'
  39. },
  40. methods: {
  41. btn_click: function (pg_num) {
  42. this.pg = pg_num
  43. }
  44. }
  45. })
  46. </script>
  47. </html>

总结

以上所述是小编给大家介绍的基于vue实现一个神奇的动态变色按钮效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对w3xue网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号