【发布时间】:2018-05-19 05:28:58
【问题描述】:
我正在使用 HTML 5 空白子主题从 Wordpress 加载前端站点。当我的屏幕尺寸大于 960 像素时,我使用粒子滑块产生徽标效果;对于 cmd+r) PS效果再次显现。代码来自我在这里发布的一个原始问题 - Original Stack Q&A
这是我现在使用的 javascript 代码 -
粒子滑块.php
<?php /* Template Name: particle-slider */ ?>
<!-- particle-slider template -->
<div id="particle-slider">
<div class="slides">
<div class="slide" data-src="<?php echo home_url(); ?>/wp-content/uploads/2017/10/havoc_logohight.png"></div>
</div>
<canvas class="draw" style="width: 100%; height: 100%;"></canvas>
</div>
<script type="text/javascript">
var ps = new ParticleSlider({ 'width':'1400', 'height': '600' });
// patch nextFrame to track failure/success
var nextFrameCalled = false;
ps.oldNextFrame = ps.nextFrame;
ps.nextFrame = function () {
try {
ps.oldNextFrame.apply(this, arguments);
nextFrameCalled = true;
} catch (e) {
console.log(e);
nextFrameCalled = false;
}
};
var addEvent = function (object, type, callback) {
if (object.addEventListener) {
object.addEventListener(type, callback, false);
} else if (object.attachEvent) {
object.attachEvent("on" + type, callback);
} else {
object["on" + type] = callback;
}
};
var oldWidth = window.innerWidth;
addEvent(window, 'resize', function () {
var newWidth = window.innerWidth;
if (newWidth >= 960 && oldWidth < 960) {
console.log("Restarting particle slider " + newWidth);
ps.resize();
if (!nextFrameCalled)
ps.nextFrame(); // force restart animation
else {
// ensure that nextFrameCalled is not still true from previous cycle
nextFrameCalled = false;
setTimeout(function () {
if (!nextFrameCalled)
ps.nextFrame(); // force restart animation
}, 100);
}
}
oldWidth = newWidth;
});
</script>
<div id="logo"> <img src="<?php echo home_url(); ?>/wp-content/uploads/2017/10/havoc_logo.png"> </div>
<!-- particle-slider template -->
我需要与在此站点here 上看到的效果相同的效果 - 当页面重新调整大小时,徽标会从粒子切换到静态。粒子标志完美再现。
所有其他相关代码都链接到原始问题,因为没有任何改变。我在控制台中没有看到任何提示它为什么不起作用的东西。
【问题讨论】:
标签: javascript wordpress safari cross-browser