谷歌浏览器不显示视差图像

时间:2018-06-07 19:33:23

标签: javascript jquery html css parallax

我仍然是一名学习型开发人员,我不确定这个问题是什么,但我的Parallax图片似乎只在Google Chrome上加载。 Firefox,IE和Safari似乎运行得很完美。我已经读过由于Chrome中的故障导致它与固定属性有什么关系,但我不确定我的下一步是什么。

所以,即使不是所有的网页,我都会设置当前的英雄:

<section class="hero-fullscreen parallax">            
        <div class="background-image">
            <img src="img/backgrounds/encounter.png" alt="img">
        </div>                         
    </section>

下面我有我的CSS:

.hero-fullscreen { 
    position: relative; 
	width: 100%;
	height: 100%;  
    background-color: #0f1112; 

}
.parallax {
    position: relative;
    overflow: hidden
        
}
.parallax .container {
    position: relative;
    z-index: 2;
}


.parallax > .background-image,
.parallax .slides li > .background-image {
  height: 100vh;
  top: -50vh;
  transition: opacity 0.9s ease;
  -webkit-transform-style: preserve-3d;
}

.parallax:first-child .slides li > .background-image,
.parallax:first-child .background-image,
.hero-fullscreen.parallax .background-image {
  top: 0;
}
.main-container > a:first-child + .parallax .background-image {
  top: 0;
}
@media all and (max-width: 1024px) {
  .parallax > .background-image,
  .parallax .slides li > .background-image {
    top: 0 !important;
    transform: none !important;
    -webkit-transform: none !important;
    height: 100%;
  }
}

 
/* Background Image */
.background-image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-size: cover !important;
    background-position: 50% 50% !important;
    z-index: 0;
    opacity: 0;
    background: #1c1c1c;
    transition: opacity .3s;
    -webkit-transition: opacity .3s;
    -moz-transition: opacity .3s;
    
}
.background-image img {
    display: none
}
 
section {
    position: relative;
}

用我的JS:

 parallaxVossen();

    var isOpera, isFirefox, isSafari, isIE, isEdge, isChrome, isBlink, isMob;
    isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
    isFirefox = typeof InstallTrigger !== 'undefined';
    isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
    isIE =  navigator.userAgent.indexOf("MSIE ");
    isEdge = !isIE && !!window.StyleMedia;
    isChrome = !!window.chrome && !!window.chrome.webstore;
    isBlink = (isChrome || isOpera) && !!window.CSS;
    isMob =  (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
    if (isChrome || isFirefox  || isSafari) {
        if ($(window).width() > 992) {
            $('.parallax').vossenParallax();
            
        };
        $(window).scroll(function () {
            function parallaxHero() {
                var scrolled = $(window).scrollTop();
                if ($(window).width() > 992) {
                    $('.map-parallax').css('top', -(scrolled * 0.4) + 'px');
                    $(".slide").css({transform: 'translate3d(0px, ' + (scrolled * 0.4) + 'px, 0px)'});
                }
            }
            parallaxHero();
        });
    }
    
    $(window).load(function () {
        $('.parallax-bg img').animate({opacity : 1}, 1000);
        $('.white-until-load').css({color : "#191a1c"});
        
    });

就像我说的,除了Google Chrome之外,它似乎适用于所有浏览器。

亲自尝试:http://www.gracechurch.tv

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

目前,我在网上找到了两个有效的修复工具。

您可以将以下属性添加到包含带固定附件的背景图像的元素中。

%pylab inline
import random
import string
import numpy as np
import tensorflow as tf
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import LSTM, TimeDistributed, Dense, SimpleRNN

BATCH_SIZE = 1
NAMESPACE = string.ascii_uppercase+string.digits
NAMESPACELENGTH = len(NAMESPACE)

def generate_encoding():
    encoding = {}
    for i, letter in enumerate(NAMESPACE):
        encoding[letter] = i
    return encoding

ENCODING = generate_encoding()

def letter_to_vec(letter):
    vec = np.zeros(NAMESPACELENGTH)
    vec[ENCODING[letter]] = 1
    return vec

def word_to_matrix(word):
    return np.array([letter_to_vec(letter) for letter in word])

def dummy_X_y(size=BATCH_SIZE):
    X = []
    y = []
    for N in np.random.randint(1, 100, size):
        tmp = ''.join(random.choice(NAMESPACE) for _ in range(N))
        X.append(tmp)
        y.append(len(tmp))
        del tmp
    return X, y

print(dummy_X_y())


def generate_model():
    model = Sequential()
    model.add(SimpleRNN(1, input_shape=(None, NAMESPACELENGTH), return_sequences=False))
    model.add(Dense(1, activation='linear'))
    model.compile(loss='mean_squared_error', 
                  optimizer='adam', metrics=['mean_squared_error'])
    return model

model = generate_model()

for _ in range(20000):
    # train LSTM
    # generate new random sequence
    X,y = dummy_X_y(size=BATCH_SIZE)
    X = np.array([word_to_matrix(x) for x in X])
    # fit model for one epoch on this sequence
    model.fit(X, y, epochs=1, batch_size=BATCH_SIZE, verbose=1)

或者您可以使用背景固定图像将元素的位置更改为静态。

yourdiv {
position:relative;
background-image:url(your_image);
background-size:cover;
background-position:center;
background-attachment:fixed;
transform: translate3d(0,0,0);
-webkit-transform: translate3d(0,0,0);
}

希望现在有所帮助。

答案 1 :(得分:0)

Chromes从66到67的新更新存在问题。请检查您正在运行的Chrome版本。如果它是67,那就是你的问题...或者我应该说,谷歌的问题。我在其他CPU的66版本上测试了我的网站,没有任何问题。