一般网站开发用什么语言,简述网站开发的工作流程,直播网站开发公司,哈尔滨网站备案地址最近要写这么一个页面#xff0c;左侧一列图片缩略图#xff0c;点击左侧缩略图后有选中效果#xff0c;然后右侧展示图片原图#xff0c;还能够左右翻页查看。 最后写了一个demo出来#xff0c;demo还不是很完善#xff0c;需要自己修改#xff0c;后面我也给出了修改建…最近要写这么一个页面左侧一列图片缩略图点击左侧缩略图后有选中效果然后右侧展示图片原图还能够左右翻页查看。 最后写了一个demo出来demo还不是很完善需要自己修改后面我也给出了修改建议。 文章目录 demo的最终效果修改说明页面源代码 demo的最终效果 我这里数据是写死的 url是获取的本地图片测试时候可以直接这样写。 到时候有数据时直接把url封装到这个数组结构中就可以了。
修改说明
这里说一下我对这个demo的修改供大家参考 1、我这里在左侧加了滚动条查看缩略图列表用的是el的这个组件el-scrollbar。
2、右侧大图我又加了点击放大查看用的是el的el-image的:preview-src-list属性给这个属性绑定一个url数组可以把这个对象数组的url属性封装到一个url数组中。
可以参考elementui官网的大图预览 https://element.eleme.io/#/zh-CN/component/image
3、这个样式是左侧缩略图选中时的灰色选中效果可以自行修改颜色。 .thumbnail.active { background-color: #ccc; } 4、可以把右侧大图的宽度定死这样图片跳转按钮就不会来回跳了 5、还可以把跳转按钮做成循环的这样到最后一页再跳转的时候就会直接到第一页。 循环的写法 就是多加一个else判断
// 上一张图片prevImage() {if (this.currentIndex 0) {this.currentIndex--;} else {this.currentIndex this.images.length - 1;}},// 下一张图片nextImage() {if (this.currentIndex this.images.length - 1) {this.currentIndex;} else {this.currentIndex 0;}},页面源代码
template!-- 图片展示组件 --div classimage-gallery!-- 缩略图列表 --div classthumbnail-listdivv-for(image, index) in images:keyindex:class[thumbnail, { active: index currentIndex }]clicksetCurrentIndex(index)img :srcimage.url altThumbnail /div classimage-name{{ image.name }}/div !-- 显示图片名称 --/div/div!-- 图片展示器 --div classimage-viewerdiv classimage-container!-- 左翻页箭头 --div classarrow left clickprevImage#8249;/div!-- lt;!ndash; 当前选中的图片 ndash;gt;--
!-- img :srccurrentImage.url altFull Size Image /--!-- 当前选中的图片 --div classimage-wrapperdiv classimage-name{{ currentImage.name }}/div !-- 显示图片名称 --div classimage-name{{ currentImage.summary }}/div !-- 显示图片名称 --img :srccurrentImage.url altFull Size Image //div!-- 右翻页箭头 --div classarrow right clicknextImage#8250;/div/div/div/div
/templatescriptexport default {data() {return {// 图片对象数组包含链接和名称images: [{ url: require(/assets/01.png), name: 图片1 ,summary:图片介绍},{ url: require(/assets/02.png), name: 图片2 ,summary:图片介绍},{ url: require(/assets/03.png), name: 图片3 ,summary:图片介绍},],// 当前选中的图片索引初始值为 0currentIndex: 0,};},computed: {// 计算属性返回当前选中的图片对象currentImage() {return this.images[this.currentIndex];},},methods: {// 设置当前选中的图片索引setCurrentIndex(index) {this.currentIndex index;},// 上一张图片prevImage() {if (this.currentIndex 0) {this.currentIndex--;}},// 下一张图片nextImage() {if (this.currentIndex this.images.length - 1) {this.currentIndex;}},},};
/scriptstyle scoped.image-gallery {display: flex;height: 100vh;}.thumbnail-list {width: 200px;background-color: #f5f5f5;overflow-y: auto;}.thumbnail {padding: 10px;cursor: pointer;border-bottom: 1px solid #ccc;}.thumbnail img {width: 100%;}.thumbnail.active {background-color: #ccc;}.image-viewer {flex: 1;display: flex;align-items: center;justify-content: center;}.image-container {position: relative;}.arrow {position: absolute;top: 50%;font-size: 24px;color: #fff;cursor: pointer;user-select: none;background-color: rgba(0, 0, 0, 0.3);padding: 4px 8px;}.arrow.left {left: 10px;}.arrow.right {right: 10px;}img {max-width: 100%;max-height: 100%;}.image-name {margin-top: 5px; /* 图片名称与缩略图之间的上边距 */text-align: center; /* 居中显示图片名称 */}/*小的图片查看器样式*/.image-wrapper {/* position: relative;*/margin-top: 40px;}
/style