HTML 5 빈 어린이 테마를 사용하여 Wordpress에서 프런트 엔드 사이트를로드합니다. 나는 화면 크기가 960px 이상일 때 입자 슬라이더를 사용하여 로고 효과를가집니다. 화면 크기 : < 960px 플랫 로고 이미지가 있습니다. Firefox와 Chrome 모두에서 정상적으로 작동하지만 Safari에서 로고 사이의 크기를 조정할 때 PS 효과가 다시 표시되기 전에 수동으로 페이지를 새로 고쳐야합니다 (cmd + r). Safari에서 입자 슬라이더 로고의 크기가 조절되지 않습니다.
<?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 -->
내가 같은 효과를 필요
입자 slider.php - 여기
Original Stack Q&A 내가 지금 사용하고 자바 스크립트 코드입니다 - 코드는 내가 여기에 게시 원래 질문에서 공급 된 이 사이트에서 볼 수 있듯이 here - 페이지의 크기가 변경됨에 따라 로고가 입자에서 정적으로 전환됩니다. 입자 로고가 완벽하게 다시 나타납니다.
다른 모든 관련 코드는 변경 사항이 없으므로 원래 질문과 연결됩니다. 콘솔에서 콘솔이 작동하지 않는 이유가 무엇인지는 알 수 없습니다.
고맙습니다. 그래서이 코드를 제 선택한 대답에 넣으시겠습니까? 기존 코드를 대체합니까? 나는 js에 정통한 사람이 아니기 때문에 사과한다. 이미지가 계속해서 불규칙적으로 깜박이고 내가 아래에있는 이미지로 갔기 때문에 실제로 선택한 대답에서 벗어났습니다.하지만 내가 말했듯이 사파리에서 작동하고 싶지는 않습니다. 이 코드를 사용하여 문제를 해결할 수 있다면 다시 구현할 것입니다. –
이 사이트 http://teamgeek.co.za/는 동일한 입자 디자인과 동일한 크기 조정 이벤트 (모바일/태블릿 용 정적 로고와 입자)를 사용하며 완벽하게 크기를 조정합니다. 이 효과를 재현 할 수 있어야합니다. –
@ Mike.Whitehead는 정말로 그렇지 않습니다. 대부분의 대체품입니다. 나는 원래의 대답에 구현 IE8 지원으로 귀찮게하지 않았습니다. 그 팀 게크 사이트는 여전히 꽤 괜찮은 (심지어 꽤 괜찮은 데브 머신에서) 꽤 janky이기 때문에, 그것이 당신의 이상적이라면 당신은 더듬이와 프레임을 고려해야 할 필요가있다. 그것들의 구현은 당신처럼 보이지 않습니다. 특히'ParticleSlider.resize()'를 호출합니다.'ParticleSlider.resize()'는 여기에서 재현 한 대체 답변이 아니라 이전 질문에서 원래 선택한 대답과 마찬가지로'init'를 호출합니다. . – Keith