Vue.js 和 jQuery 都是前端开发中常用的 JavaScript 库,但它们有着不同的特点和用途。
- 响应式:Vue.js 是一个响应式框架,它可以响应数据的变化,自动更新视图。而 jQuery 是一种 DOM 操作库,需要手动操作 DOM 元素。
- 组件化:Vue.js 支持组件化开发,可以将一个页面拆分成多个组件进行开发和维护。而 jQuery 没有明确的组件化概念,开发和维护较为繁琐。
- 插件机制:Vue.js 提供了插件机制,可以方便地扩展其功能。而 jQuery 也有丰富的插件库,但是后期维护较为困难。
- 数据流:在 Vue.js 中,通过父子组件之间的 props 和事件传递数据,可以实现组件之间的数据流。而 jQuery 操作数据较为独立,组件之间数据流难以管理。
- 模板语法:Vue.js 提供了模板语法,使用简单且直观。而 jQuery 操作 DOM 元素的方式比较繁琐,需要手动操作。
总的来说,Vue.js 更适合大型复杂的单页应用程序开发,而 jQuery 则更适合简单的交互效果和常规的 DOM 操作。
案例代码:
HTML 代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>图片放大镜效果</title>
<style>
.wrapper {
width: 600px;
margin: 0 auto;
position: relative;
}
.small {
width: 200px;
height: 200px;
overflow: hidden;
margin: 50px 0;
border: 2px solid #ccc;
float: left;
}
.small img {
width: 100%;
}
.big {
width: 300px;
height: 300px;
position: absolute;
top: 0;
left: 100%;
margin-left: 20px;
border: 2px solid #ccc;
display: none;
}
.big img {
width: 100%;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="small">
<img src="small.jpg" alt="图片">
<div class="mark"></div>
</div>
<div class="big">
<img src="big.jpg" alt="图片">
</div>
</div>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var mark = $('.mark'),
small = $('.small'),
big = $('.big'),
bigImg = $('.big img'),
smallImg = $('.small img');
// 鼠标移入 small 区域,显示 mark 和 big
small.on('mouseenter', function() {
mark.show();
big.show();
});
// 鼠标移出 small 区域,隐藏 mark 和 big
small.on('mouseleave', function() {
mark.hide();
big.hide();
});
// 鼠标移动,改变 mark 和 big 的位置和内容
small.on('mousemove', function(ev) {
var left = ev.pageX - small.offset().left - mark.width() / 2,
top = ev.pageY - small.offset().top - mark.height() / 2;
if (left < 0) {
left = 0;
} else if (left > small.width() - mark.width()) {
left = small.width() - mark.width();
}
if (top < 0) {
top = 0;
} else if (top > small.height() - mark.height()) {
top = small.height() - mark.height();
}
mark.css({
left: left + 'px',
top: top + 'px'
});
bigImg.css({
left: -left * bigImg.width() / small.width() + 'px',
top: -top * bigImg.height() / small.height() + 'px'
});
});
});
</script>
</body>
</html>
- HTML 代码中包含两个图片容器,其中一个是用来展示小图的,一个是用来展示大图的。在小图容器中添加一个透明的鼠标跟随层,用于跟随鼠标移动并实现放大效果的展现。
- 在 CSS 样式中,设置小图和大图容器的样式,并设置鼠标跟随层和大图容器的初始状态为隐藏。
- 在 JavaScript 中,通过 jQuery 选择器获取鼠标跟随层、小图容器、大图容器和对应的图片元素。
- 给小图容器绑定鼠标移入事件,当鼠标移入小图容器时,显示鼠标跟随层和大图容器。
- 给小图容器绑定鼠标移出事件,当鼠标移出小图容器时,隐藏鼠标跟随层和大图容器。
- 给小图容器绑定鼠标移动事件,当鼠标在小图容器内移动时,跟随层将跟随鼠标移动,并更新大图区域的图片位置,从而实现放大效果的变化。
原文地址:https://blog.csdn.net/cgithxk/article/details/129635388
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_28586.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。