首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BarbaJS在导航栏中工作正常的问题,但特定链接不能转换页面

BarbaJS在导航栏中工作正常的问题,但特定链接不能转换页面
EN

Stack Overflow用户
提问于 2017-08-18 00:54:15
回答 1查看 827关注 0票数 0

我正在使用BarbaJS (我也在github上提出了一个问题)用于一个带有标题导航和徽标的基本站点构建,当我使用导航项目时,转换是完美的,但当我单击标题徽标链接(带有SVG内部)时,它只是重新加载浏览器,我看不出为什么BarbaJS不为标题徽标触发。

任何建议都会很棒,干杯。

HTML标记(去掉了移动导航汉堡之类的东西):

代码语言:javascript
复制
<div class="site" id="barba-wrapper">
    <header class="header">
        <div class="wrapper header__inner">

            <a href="/" class="header__logo">
                <div class="icon icon--brand-logo">
                    <svg><use xlink:href="#brand-logo"></use></svg>
                </div>
            </a>

            <nav class="menu__wrapper">
                <span class="menu__mask"></span>
                <ul class="menu__list r-ul">
                    <li class="menu__item"><a href="/content.html"class="menu__link">Menu item</a></li>
                    <li class="menu__item"><a href="/content2.html" class="menu__link">Item two</a></li>
                    <li class="menu__item"><a href="#" class="menu__link">Another item</a></li>
                </ul>
            </nav>

        </div>
    </header>

    <div class="site-wrap barba-container has-hero" id="js-site-wrap">
    <!-- Site content that is getting replaced -->
    </div>

</div>

BarbaJS (现在只使用存储库中的基本淡入淡出...):

代码语言:javascript
复制
import Barba from 'barba.js'

var FadeTransition = Barba.BaseTransition.extend({
    start: function() {
        Promise
            .all([this.newContainerLoading, this.fadeOut()])
            .then(this.fadeIn.bind(this))
    },

    fadeOut: function() {
        return $(this.oldContainer).animate({ opacity: 0 }).promise()
    },

    fadeIn: function() {
        $("html, body").animate({ scrollTop: '0' })

        if ('scrollRestoration' in history) {
            history.scrollRestoration = 'manual';
        }

        const _this = this,
            $el = $(this.newContainer)
            $(this.oldContainer).hide()

        $el.css({
          visibility: 'visible',
          opacity: 0
        })

        $el.animate({ opacity: 1 }, 500, function() {
            _this.done()
        })
    }
})

Barba.Pjax.getTransition = function() {
  return FadeTransition
}

Barba.Prefetch.init()
Barba.Pjax.start()
EN

回答 1

Stack Overflow用户

发布于 2017-08-19 19:28:22

在标题徽标内的svg中添加“pointer-events:none”解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45740981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档