Рубрики
Uncategorized

Краткое описание строительства станции красоты

Автор оригинала: David Wong.

Как говорится, программист, который не любит красивых женщин, не является хорошим водителем! мм:http://mm.luckyw.cn/ Карта-сестра: http://mzt.luckyw.cn/ Яичница-глазунья: http://jd.luckyw.cn/

В эти дни я занимался в учебнике для новичков. php и mysql Я хочу подвести итоги своих собственных учебных достижений. мм Станции с картинками также появились естественным образом, в основном использовались. Изображение Водопадного потокаЗагрузка данных Ajax , Статические страницы PHPПодкачка изображений Методы осуществления

Изображение Водопадный Поток

Существует два метода водопадного потока, первый из которых-статическая домашняя страница. index.html ): Сначала достаньте все коробки с картинками коробки Ширина каждой графической коробки box_w Ширина документа W Итак, мы получаем количество столбцов. число Затем настройте контейнер $('#imgBox') Ширина равна Номеру столбца * ширина каждого графического поля 。 Затем определите массив arr Сохраните высоту каждого столбца и обойдите все графические поля. Если индекс на данный момент меньше, чем количество столбцов, добавьте в поле высоту поля изображения. Если индекс больше, чем количество столбцов в данный момент, сначала получите массив. об Минимальная высота Мин Индекс этого столбца minIndex Затем определите местоположение графического поля в контейнере, потому что мой контейнер imgBox Это было определено. положение:относительно Установите поле для изображения в положение:абсолютное Поле изображения расположено абсолютно относительно контейнера. слева и верхнее Значение, а затем добавьте значение самого нижнего столбца в массиве к высоте поля picturebox, которое реализует эффект водопада изображений, запускаемый прокруткой страницы. ajax Загрузите данные, затем добавьте поля с картинками одно за другим в контейнер.

function waterfall() {
    var boxes = $('.box');
    var box_w = boxes.eq(0).outerWidth(true);
    var W = document.body.clientWidth || document.documentElement.clientWidth;
    var num = Math.floor(W / box_w); //5
    $('#imgBox').width(num * box_w);
    $('.w').width(num * box_w);
    var arr = [];
    boxes.each(function(index, ele) {
        var h = $(ele).outerHeight(true);
        if (index < num) {
            arr.push(h);
        } else {
            var minH = Math.min.apply(null, arr);
            var minIndex = getMinIndex(arr, minH);
            $(ele).css({
                'position': 'absolute',
                'left': box_w * minIndex,
                'top': minH
            });
            arr[minIndex] += h;
        }
    });
}
function getMinIndex(arr, h) {
    for (var i in arr) {
        if (arr[i] == h) {
            return i;
        }
    }
}

Второй способ (разбиение на страницы изображений): Это в основном то же самое, что и выше. Это также касается получения всех коробок с картинками. коробки Ширина каждой графической коробки box_w Ширина документа W Итак, мы получаем количество столбцов. число Затем настройте контейнер $('#imgBox') Ширина равна Номеру столбца * ширина каждого графического поля 。 Но разница в том, что я использую здесь определение. число Колонки div Box, установите его ширину равной ширине picturebox box_w , отображение с помощью встроенного блока Затем добавьте его в контейнер, а затем возьмите все коробки с картинками из dom Удаляйте и добавляйте один за другим в самый короткий столбец

Загрузка данных Ajax

Я использую его здесь. python Возьмите ссылки на фотографии из Интернета и сохраните их в mysql В базе данных, затем создайте интерфейс для доступа к данным, ссылки на интерфейс: http://luckyw.cn/api/load_img… Срабатывает, когда страница прокручивается ajax Методом загрузки данных, в это время ajax Запрашивает данные через интерфейс, затем добавляет в контейнер одно графическое поле за другим, а затем применяет поток водопада изображений для достижения эффекта загрузки изображений потоком водопада. ajax Код для запроса данных изображения выглядит следующим образом:

/**
 * Ajax requests image data
 *@ Params: Start Position
 *@ Param n: Number of pages per page
 */
function ajax(s, n) {
    $.ajax({
        url: 'http://luckyw.cn/api/load_img.php?start=' + s + '&num=' + n,
        method: 'GET',
        dataType: "json",
        success: function(data) {
            var imgs = data.list;
            for (var i in imgs) {
                var box = $('

Статические страницы PHP

Здесь я просто сказал следующий принцип: он используется. php Механизм кэширования output_buffering Затем используйте file_put_contents Запишите кэш в файл для достижения статичности страницы, код ключа выглядит следующим образом:

// Index.php file
Ob_start();//If `php.ini'does not open the cache, open the cache here.
Require [once ('temp. PHP '); // load the template file
If (file_put_contents('index.html', ob_get_clean()) {// Write the cache into the file and empty the cache
    Header ("location: index. html"); here is the implementation of page Jump to static files
}else{
    echo 'error';
}

После этого мы навещаем друг друга каждый раз. index.php Файл будет сгенерирован и перенесен в index.html Статические файлы

Подкачка изображений

Интерфейс в основном похож на интерфейс, и интерфейс предназначен для возврата данных, и вот основа. url Ключевым моментом является реализация подкачки. Логика хорошо понятна. Здесь я не буду подробно останавливаться на этом. Посмотрите на код просто:

$start = 1;
$end = $totalPage;
$showPageNum = 5;
$pageOffset = ($showPageNum-1)/2;
$page_navigation = '';
if($page>1){
    $page_navigation. =" Home page ";
    $page_navigation. =" < previous page ";
}
if($totalPage>$showPageNum){
    if($page>$pageOffset+1){
        $page_navigation .= '...';
    }
    if($page>$pageOffset){
        $start = $page-$pageOffset;
        $end = $totalPage>$page+$pageOffset?$page+$pageOffset:$totalPage;
    }else{
        $start = 1;
        $end = $showPageNum;
    }
    if($page+$pageOffset>$totalPage){
        $start = $start - ($page+$pageOffset-$end);
    }
}
for($i=$start;$i<=$end;$i++){
    if($i==$page){
        $page_navigation.="$i";
    }else{
        $page_navigation.="$i";
    }
}
if($totalPage>$showPageNum&&$totalPage>$page+$pageOffset){
    $page_navigation.='...';
}
if($page<$totalPage){
    $page_navigation. =" next page & gt; ";
    $page_navigation. =" tail page ";
}
$page_navigation. = "There are {$total Page} pages in common";

Оригинал: “https://developpaper.com/summary-of-beauty-picture-station-construction/”