У меня есть изображение со значком в середине, которое указывает на возможность прокрутки для пользователя. Когда пользователь прокручивается, я хотел бы погасить значок. Прямо сейчас я могу скрыть картинку, но мне нужен эффект затухания.javascript/angularjs - fade out
Вот мое мнение:
<div style="overflow: scroll;">
<img id="fullImage" ng-src="{{imageUrl}}" imageonload>
<img id="drag-arrows" class="drag-arrows" ng-src="images/icon-drag.png"/>
<h3 id="optionName" class="optionName">{{ optionName }}</h3>
<a class="close-reveal-modal" ng-click="cancel()"><img class="cancel-icon" ng-src="images/icon-close-fullscreen.png"></a>
</div>
Вот моя директива, которая прослушивает TouchMove события, чтобы скрыть значок перетаскивать стрелки:
modalController.directive('imageonload', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('load', function() {
var img = document.getElementById("fullImage");
var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
var imageWidth = img.width;
var imageHeight = img.height;
var aspectRatio = imageWidth/imageHeight;
if (w < imageWidth && h < imageHeight){
// scale image down
var widthDiff = imageWidth - w;
var heightDiff = imageHeight - h;
if(widthDiff <= heightDiff){
imageWidth = w;
imageHeight = w/aspectRatio;
}
else{
imageHeight = h;
imageWidth = h * aspectRatio;
}
}
else if (w < imageWidth && h > imageHeight) {
// fill image vertically
imageHeight = h;
imageWidth = h * aspectRatio;
}
else if (w > imageWidth && h < imageHeight) {
// fill image horizontally
imageWidth = w;
imageHeight = w/aspectRatio;
}
else {
// fill image in both directions
var widthDiff = w - imageWidth;
var heightDiff = h - imageHeight;
if(widthDiff >= heightDiff){
imageWidth = w;
imageHeight = w/aspectRatio;
}
else{
imageHeight = h;
imageWidth = h * aspectRatio;
}
}
img.style.width = imageWidth + "px";
img.style.height = imageHeight + "px";
img.style.maxWidth = "none";
// add scroll left to parent container
var container = img.parentNode;
var scrollLeft = (imageWidth - w)/2;
container.scrollLeft = scrollLeft;
});
element.bind('touchmove', function(){
var arrows = document.getElementById("drag-arrows");
arrows.style.display = "none";
});
}
};
});
Любые предложения о том, как создать этот выцветанию эффект особенно правильный угол, если это возможно?
Спасибо за ответ. Это многое прояснилось для меня. Но просто для того, чтобы уточнить, как мне получить доступ к переменной области vm.showText из директивы? – user3562751
он находится в области директивы, или вы можете поместить другой атрибут в элемент и прочитать это. Вы хотите обновленный пример –
Да, пожалуйста, если вы не возражаете. – user3562751