forked from Gitlink/forgeplus
78 lines
3.2 KiB
JavaScript
Executable File
78 lines
3.2 KiB
JavaScript
Executable File
/*
|
|
* Copyright 2018-2018 the original author or authors.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* WebSite: http://bootstrap-viewer.leftso.com
|
|
*/
|
|
$.fn.bootstrapViewer = function (options) {
|
|
$(this).on('click', function () {
|
|
var opts = $.extend({}, $.fn.bootstrapViewer.defaults, options);
|
|
var viewer = $('<div class="modal fade bs-example-modal-lg text-center" id="bootstrapViewer" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" >\n' +
|
|
' <div class="modal-dialog modal-lg" style="display: inline-block; width: auto;">\n' +
|
|
' <div class="modal-content">\n' +
|
|
' <img' +
|
|
'\t\t\t class="carousel-inner img-responsive img-rounded img-viewer" draggable="false"\n' +
|
|
'\t\t\t onclick="/*$(\'#bootstrapViewer\').modal(\'hide\');setTimeout(function(){$(\'#bootstrapViewer\').remove();},200);*/"\n' +
|
|
'\t\t\t onmouseover="this.style.cursor=\'move\';" \n' +
|
|
'\t\t\t onmouseout="this.style.cursor=\'default\'" \n' +
|
|
'\t\t\t />\n' +
|
|
' </div>\n' +
|
|
' </div>\n' +
|
|
' </div>');
|
|
$('body').append(viewer);
|
|
if ($(this).attr(opts.src)) {
|
|
$("#bootstrapViewer").find(".img-viewer").attr("src", $(this).attr(opts.src));
|
|
$("#bootstrapViewer").modal();
|
|
} else {
|
|
throw "图片不存在"
|
|
}
|
|
$('#bootstrapViewer').on('hidden.bs.modal', function(){
|
|
$('#bootstrapViewer').remove();
|
|
});
|
|
|
|
var $moveDiv = $('#bootstrapViewer .modal-dialog');
|
|
var isMove = false;
|
|
var div_x = $moveDiv.offset().left;
|
|
var div_y = $moveDiv.offset().top;
|
|
|
|
var mousedownFunc = function (e) {
|
|
if (isMove) {
|
|
var left = e.pageX - div_x;
|
|
var top = e.pageY - div_y;
|
|
if(left < 0){ left = 0}
|
|
if(top < 0){ top = 0}
|
|
$moveDiv.css({"left": left, "top":top});
|
|
}
|
|
}
|
|
|
|
$moveDiv.mousedown(function (e) {
|
|
$moveDiv.css({ left: $moveDiv[0].offsetLeft, top: $moveDiv[0].offsetTop, marginTop: 0, position: 'absolute' });
|
|
|
|
isMove = true;
|
|
div_x = e.pageX - $moveDiv.offset().left;
|
|
div_y = e.pageY - $moveDiv.offset().top;
|
|
$(document).mousemove(mousedownFunc);
|
|
}).mouseup(function () {
|
|
isMove = false;
|
|
$(document).unbind('mousemove', mousedownFunc);
|
|
});
|
|
})
|
|
|
|
$(this).on('mouseover', function () {
|
|
$(this).css('cursor', 'zoom-in');
|
|
})
|
|
}
|
|
$.fn.bootstrapViewer.defaults = {
|
|
src: 'src'
|
|
} |