使用Vue单击图像时,我无法链接到其他URL。
它应该能够通过单击图像进行链接,但这不起作用。
如果有人可以帮助我,我会非常感激。
我的代码如下所示。
HTML
<section class="bg-light page-section" id="portfolio">
<div class="container">
<div class="row">
<div class="col-lg-12 text-center"><br>
<h2 class="section-heading text-uppercase works-text">Works</h2>
<h3 class="section-subheading text-muted">Selected work that has been created with the help of many.</h3>
</div>
</div>
<div class="row">
<div class="col-md-4 col-sm-6 portfolio-item" v-for="(obj, key) in portfolioJSON" :key="key" >
<a class="portfolio-link" data-toggle="modal" target = "_blank" v-bind:href="`${obj.url}`">
<div class="portfolio-hover">
<div class="portfolio-hover-content">
<!-- <! <i class="fas fa-plus fa-3x"></i> -->
</div>
</div>
<img :src="`${obj.img}`" class="img-fluid" >
</a>
<div class="portfolio-caption works-text">
<h4 class="works-text">{{ obj.caption }}</h4>
<p class="text-muted works-text">{{ obj.title }}</p>
</div>
</div>
</div>
</div>
</section>
export default {
data() {
return{
portfolioJSON: [
{
img: require('../assets/img/sukimatch/sukimatch.png'),
caption: 'Sukimatch',
title: 'WEBSITE, BANNER DESIGN',
url: "https://sukimatch-f887f.firebaseapp.com/"
},
{
img: require('../assets/img/portfolio/greencosjapan.png'),
caption: 'Greencosjapan',
title: 'WEBSITE',
url: "https://greencosjapan.com"
}
]
}
}, computed: {
imageArray: function() {
return this.portfolioJSON.map(obj => obj.img)
},
urlArray: function() {
return this.portfolioJSON.map(obj => obj.url)
}
},
}
答案 0 :(得分:1)
您的代码将无法正常工作,您应该调用${obj.img}
,这是模板文字的新ES6语法
<div class="col-md-4 col-sm-4 sk-item" v-for="(obj, key) in portfolioJSON" :key="key">
<img :src="`${obj.img}`" class="img-fluid" alt="" >
</div>
您可以在此处了解更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
这非常有用,您应该在代码中所有可以使用的地方使用它。
img: require('../assets/img/sukimatch/sukimatch.png'),
caption: 'Sukimatch',
title: 'WEBSITE, BANNER DESIGN',
url: "https://sukimatch-f887f.firebaseapp.com/"
:title="`${obj.title}`"
:href="`${obj.url}`"
:img="`${obj.img}`"
希望这可以帮助您:)
更新:
export default {
data() {
return {
portfolioJSON: [
{
img: require('../assets/img/sukimatch/sukimatch.png'),
caption: 'Sukimatch',
title: 'WEBSITE, BANNER DESIGN',
url: "https://sukimatch-f887f.firebaseapp.com/"
},
{
img: require('../assets/img/portfolio/greencosjapan.png'),
caption: 'Greencosjapan',
title: 'WEBSITE',
url: "https://greencosjapan.com"
}
]
}, computed: {
imageArray: function() {
return this.portfolioJSON.map(obj => obj.img)
}
}
}
答案 1 :(得分:0)
您的图像上不需要href。其他一切看起来都可以。我只是在一个可以正常工作的Codepen中尝试了一个示例。发布带有更完整示例的代码笔。可能是CSS问题。
您的代码:
<img :src="obj.img" class="img-fluid" href="obj.url">
应该是
<img :src="obj.img" class="img-fluid"
答案 2 :(得分:0)
此解决方案对我有用。当您的资产文件夹位于公用文件夹内时。
<div style="backgroundImage: url('~../../assets/images/image_1.jpg')">
否则,如果它在src内部使用别名“ @”
<div style="backgroundImage: url('~@/assets/images/image_1.jpg')">